package pos.presentacion;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import pos.data.JDBCUsuarioDAO;
import pos.domain.Usuario;


 public class FrontController extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
	 String user = "practica";

     String passwd = "practica";

     public void init() throws ServletException {
     }

     protected void doGet(HttpServletRequest request,
                     HttpServletResponse response) throws ServletException, IOException {
             processRequest(request, response);

     }

     protected void doPost(HttpServletRequest request,
                     HttpServletResponse response) throws ServletException, IOException {
             processRequest(request, response);
     }

     public void processRequest(HttpServletRequest request,
                     HttpServletResponse response) throws IOException, ServletException {
             if (logado(request)) {
                     String resource = request.getParameter("res");
                     RequestDispatcher d = request.getRequestDispatcher(resource);
                     if(d!=null){
                             d.forward(request,response);
                     }
                     System.out.println("LOGADO ACCEDIENDO A " + resource);
             } else {
                     response.sendRedirect("error.html");
             }

     }

     private boolean logado(HttpServletRequest request) {
             boolean logado = false;

             HttpSession session = request.getSession(false);

             String userForm = request.getParameter("user");
             String passwdForm = request.getParameter("passwd");

             if (session == null) {
                     session = request.getSession();
                     if (userForm == null || passwdForm == null
                                     || userForm.length() == 0 || passwdForm.length() == 0) {
                             logado = false;

                     } else {
                             if (valido(userForm, passwdForm)) {
                                     logado = true;
                                     session.setAttribute("session.user", userForm);
                             } else {
                                     logado = false;
                             }

                     }

             } else {
                     if (userForm == null || passwdForm == null) {
                             logado = true;
                     } else {
                             if (valido(userForm, passwdForm)) {
                                     logado = true;
                                     session.setAttribute("session.user", userForm);
                             } else {
                                     logado = false;
                             }

                     }
             }
             return logado;
     }

     public boolean valido(String userForm, String passwdForm) {
             boolean res = false;
             res = (userForm.equals(this.user) && passwdForm.equals(this.passwd));
             return res;

     }

}